home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / GIMP 2.6.8 / gimp-2.6.8-i686-setup.exe / {app} / share / gimp / 2.0 / scripts / spinning-globe.scm < prev    next >
Text File  |  2009-12-15  |  4KB  |  112 lines

  1. ;
  2. ; anim_sphere
  3. ;
  4. ;
  5. ; Chris Gutteridge (cjg@ecs.soton.ac.uk)
  6. ; At ECS Dept, University of Southampton, England.
  7. ; This program is free software; you can redistribute it and/or modify
  8. ; it under the terms of the GNU General Public License as published by
  9. ; the Free Software Foundation; either version 2 of the License, or
  10. ; (at your option) any later version.
  11. ;
  12. ; This program is distributed in the hope that it will be useful,
  13. ; but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15. ; GNU General Public License for more details.
  16. ;
  17. ; You should have received a copy of the GNU General Public License
  18. ; along with this program; if not, write to the Free Software
  19. ; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  20.  
  21.  
  22. ; Define the function:
  23.  
  24. (define (script-fu-spinning-globe inImage
  25.                                   inLayer
  26.                                   inFrames
  27.                                   inFromLeft
  28.                                   inTransparent
  29.                                   inIndex
  30.                                   inCopy)
  31.   (let* (
  32.         (theImage (if (= inCopy TRUE)
  33.                       (car (gimp-image-duplicate inImage))
  34.                       inImage))
  35.         (theLayer (car (gimp-image-get-active-layer theImage)))
  36.         (n 0)
  37.         (ang (* (/ 360 inFrames)
  38.                 (if (= inFromLeft TRUE) 1 -1) ))
  39.         (theFrame 0)
  40.         )
  41.  
  42.   (gimp-layer-add-alpha theLayer)
  43.  
  44.   (while (> inFrames n)
  45.     (set! n (+ n 1))
  46.     (set! theFrame (car (gimp-layer-copy theLayer FALSE)))
  47.     (gimp-image-add-layer theImage theFrame 0)
  48.     (gimp-drawable-set-name theFrame
  49.                          (string-append "Anim Frame: "
  50.                                         (number->string (- inFrames n) 10)
  51.                                         " (replace)"))
  52.     (plug-in-map-object RUN-NONINTERACTIVE
  53.                         theImage theFrame    ; mapping
  54.                         1                    ; viewpoint
  55.                         0.5 0.5 2.0          ; object pos
  56.                         0.5 0.5 0.0          ; first axis
  57.                         1.0 0.0 0.0          ; 2nd axis
  58.                         0.0 1.0 0.0          ; axis rotation
  59.                         0.0 (* n ang) 0.0    ; light (type, color)
  60.                         0 '(255 255 255)     ; light position
  61.                         -0.5 -0.5 2.0        ; light direction
  62.                         -1.0 -1.0 1.0  ; material (amb, diff, refl, spec, high)
  63.                         0.3 1.0 0.5 0.0 27.0 ; antialias
  64.                         TRUE                 ; tile
  65.                         FALSE                ; new image
  66.                         FALSE                ; transparency
  67.                         inTransparent        ; radius
  68.                         0.25                 ; unused parameters
  69.                         1.0 1.0 1.0 1.0
  70.                         -1 -1 -1 -1 -1 -1 -1 -1
  71.     )
  72.   )
  73.  
  74.   (gimp-image-remove-layer theImage theLayer)
  75.   (plug-in-autocrop RUN-NONINTERACTIVE theImage theFrame)
  76.  
  77.   (if (= inIndex 0)
  78.       ()
  79.       (gimp-image-convert-indexed theImage FS-DITHER MAKE-PALETTE inIndex
  80.                                   FALSE FALSE ""))
  81.  
  82.   (if (= inCopy TRUE)
  83.     (begin
  84.       (gimp-image-clean-all theImage)
  85.       (gimp-display-new theImage)
  86.     )
  87.   )
  88.  
  89.   (gimp-displays-flush)
  90.   )
  91. )
  92.  
  93. (script-fu-register
  94.   "script-fu-spinning-globe"
  95.   _"_Spinning Globe..."
  96.   _"Create an animation by mapping the current image onto a spinning sphere"
  97.   "Chris Gutteridge"
  98.   "1998, Chris Gutteridge / ECS dept, University of Southampton, England."
  99.   "16th April 1998"
  100.   "RGB* GRAY*"
  101.   SF-IMAGE       "The Image"               0
  102.   SF-DRAWABLE    "The Layer"               0
  103.   SF-ADJUSTMENT _"Frames"                  '(10 1 360 1 10 0 1)
  104.   SF-TOGGLE     _"Turn from left to right" FALSE
  105.   SF-TOGGLE     _"Transparent background"  TRUE
  106.   SF-ADJUSTMENT _"Index to n colors (0 = remain RGB)" '(63 0 256 1 10 0 1)
  107.   SF-TOGGLE     _"Work on copy"            TRUE
  108. )
  109.  
  110. (script-fu-menu-register "script-fu-spinning-globe"
  111.                          "<Image>/Filters/Animation/Animators")
  112.